The advantages of constructing complex software applications from loosely coupled lightweight micro-services have been recognized for some time. Software micro-services (“SMSs”) as known in the art are typically defined as standalone software implementations of a function that are equipped with a standardized interface, and can be stored in a repository to be retrieved, installed and run on demand SMSs may be implemented as containers, virtual machines (VMs), or bare metal machines. An application may be constructed by “chaining” together a plurality of SMSs in a particular order. Micro-services speed software development, by enabling small teams to develop nontrivial standalone functionalities, by enabling extensive re-use, by facilitating code refactoring, and encouraging DevOps-style incremental build and test practices.
The chaining of SMSs may be accomplished using standard mechanisms from computer networking. For example, the output of one SMS may be formatted as an Internet Protocol (IP) packet, and this packet may be forwarded to a second SMS to serve as its input.